// $ANTLR 3.0.1 C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g 2008-03-31 22:21:48

package edu.calvin.djs32.cs214.interpreters.frontend;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class Hobbes2008Lexer extends Lexer {
    public static final int COMMA=18;
    public static final int HEXDIGIT=11;
    public static final int END=9;
    public static final int APPLICATION=5;
    public static final int NUMBER=10;
    public static final int STRING=17;
    public static final int THEN=8;
    public static final int TUPLE=4;
    public static final int COMMENTS=16;
    public static final int WHITESPACE=15;
    public static final int INTEGER=13;
    public static final int ELSE=7;
    public static final int IF=6;
    public static final int EOF=-1;
    public static final int RPAREN=20;
    public static final int Tokens=21;
    public static final int SIGN=12;
    public static final int LPAREN=19;
    public static final int IDENTIFIER=14;
     
      protected void mismatch(IntStream input, int ttype, BitSet follow) 
        throws RecognitionException { 
        throw new MismatchedTokenException(ttype, input); 
      } 
      public void recoverFromMismatchedSet(IntStream input, RecognitionException e, BitSet follow) 
        throws RecognitionException { 
        throw e; 
      } 
      public void recover(RecognitionException re) {
        throw new RuntimeException(re);
      }

    public Hobbes2008Lexer() {;} 
    public Hobbes2008Lexer(CharStream input) {
        super(input);
    }
    public String getGrammarFileName() { return "C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g"; }

    // $ANTLR start IF
    public final void mIF() throws RecognitionException {
        try {
            int _type = IF;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:24:4: ( 'if' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:24:6: 'if'
            {
            match("if"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end IF

    // $ANTLR start ELSE
    public final void mELSE() throws RecognitionException {
        try {
            int _type = ELSE;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:25:6: ( 'else' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:25:8: 'else'
            {
            match("else"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end ELSE

    // $ANTLR start THEN
    public final void mTHEN() throws RecognitionException {
        try {
            int _type = THEN;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:26:6: ( 'then' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:26:8: 'then'
            {
            match("then"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end THEN

    // $ANTLR start END
    public final void mEND() throws RecognitionException {
        try {
            int _type = END;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:27:5: ( 'end' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:27:7: 'end'
            {
            match("end"); 


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end END

    // $ANTLR start NUMBER
    public final void mNUMBER() throws RecognitionException {
        try {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:57:8: ( '0' .. '9' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:57:10: '0' .. '9'
            {
            matchRange('0','9'); 

            }

        }
        finally {
        }
    }
    // $ANTLR end NUMBER

    // $ANTLR start HEXDIGIT
    public final void mHEXDIGIT() throws RecognitionException {
        try {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:9: ( ( NUMBER ) | ( ( 'a' .. 'f' ) | ( 'A' .. 'F' ) ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( ((LA2_0>='0' && LA2_0<='9')) ) {
                alt2=1;
            }
            else if ( ((LA2_0>='A' && LA2_0<='F')||(LA2_0>='a' && LA2_0<='f')) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("58:1: fragment HEXDIGIT : ( ( NUMBER ) | ( ( 'a' .. 'f' ) | ( 'A' .. 'F' ) ) );", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:10: ( NUMBER )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:10: ( NUMBER )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:11: NUMBER
                    {
                    mNUMBER(); 

                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:19: ( ( 'a' .. 'f' ) | ( 'A' .. 'F' ) )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:19: ( ( 'a' .. 'f' ) | ( 'A' .. 'F' ) )
                    int alt1=2;
                    int LA1_0 = input.LA(1);

                    if ( ((LA1_0>='a' && LA1_0<='f')) ) {
                        alt1=1;
                    }
                    else if ( ((LA1_0>='A' && LA1_0<='F')) ) {
                        alt1=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("59:19: ( ( 'a' .. 'f' ) | ( 'A' .. 'F' ) )", 1, 0, input);

                        throw nvae;
                    }
                    switch (alt1) {
                        case 1 :
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:20: ( 'a' .. 'f' )
                            {
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:20: ( 'a' .. 'f' )
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:21: 'a' .. 'f'
                            {
                            matchRange('a','f'); 

                            }


                            }
                            break;
                        case 2 :
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:31: ( 'A' .. 'F' )
                            {
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:31: ( 'A' .. 'F' )
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:59:32: 'A' .. 'F'
                            {
                            matchRange('A','F'); 

                            }


                            }
                            break;

                    }


                    }
                    break;

            }
        }
        finally {
        }
    }
    // $ANTLR end HEXDIGIT

    // $ANTLR start SIGN
    public final void mSIGN() throws RecognitionException {
        try {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:62:6: ( ( '+' | '-' ) )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:62:8: ( '+' | '-' )
            {
            if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }


            }

        }
        finally {
        }
    }
    // $ANTLR end SIGN

    // $ANTLR start INTEGER
    public final void mINTEGER() throws RecognitionException {
        try {
            int _type = INTEGER;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:10: ( ( ( SIGN )? ( NUMBER )+ ) | ( ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ) )
            int alt6=2;
            switch ( input.LA(1) ) {
            case '+':
            case '-':
                {
                int LA6_1 = input.LA(2);

                if ( (LA6_1=='0') ) {
                    int LA6_2 = input.LA(3);

                    if ( (LA6_2=='x') ) {
                        alt6=2;
                    }
                    else {
                        alt6=1;}
                }
                else if ( ((LA6_1>='1' && LA6_1<='9')) ) {
                    alt6=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("63:1: INTEGER : ( ( ( SIGN )? ( NUMBER )+ ) | ( ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ) );", 6, 1, input);

                    throw nvae;
                }
                }
                break;
            case '0':
                {
                int LA6_2 = input.LA(2);

                if ( (LA6_2=='x') ) {
                    alt6=2;
                }
                else {
                    alt6=1;}
                }
                break;
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
                {
                alt6=1;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("63:1: INTEGER : ( ( ( SIGN )? ( NUMBER )+ ) | ( ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ) );", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:12: ( ( SIGN )? ( NUMBER )+ )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:12: ( ( SIGN )? ( NUMBER )+ )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:13: ( SIGN )? ( NUMBER )+
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:13: ( SIGN )?
                    int alt3=2;
                    int LA3_0 = input.LA(1);

                    if ( (LA3_0=='+'||LA3_0=='-') ) {
                        alt3=1;
                    }
                    switch (alt3) {
                        case 1 :
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:14: SIGN
                            {
                            mSIGN(); 

                            }
                            break;

                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:21: ( NUMBER )+
                    int cnt4=0;
                    loop4:
                    do {
                        int alt4=2;
                        int LA4_0 = input.LA(1);

                        if ( ((LA4_0>='0' && LA4_0<='9')) ) {
                            alt4=1;
                        }


                        switch (alt4) {
                    	case 1 :
                    	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:22: NUMBER
                    	    {
                    	    mNUMBER(); 

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt4 >= 1 ) break loop4;
                                EarlyExitException eee =
                                    new EarlyExitException(4, input);
                                throw eee;
                        }
                        cnt4++;
                    } while (true);


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:32: ( ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:32: ( ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:33: ( SIGN )? '0x' ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT ) ( HEXDIGIT )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:33: ( SIGN )?
                    int alt5=2;
                    int LA5_0 = input.LA(1);

                    if ( (LA5_0=='+'||LA5_0=='-') ) {
                        alt5=1;
                    }
                    switch (alt5) {
                        case 1 :
                            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:34: SIGN
                            {
                            mSIGN(); 

                            }
                            break;

                    }

                    match("0x"); 

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:45: ( HEXDIGIT )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:46: HEXDIGIT
                    {
                    mHEXDIGIT(); 

                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:55: ( HEXDIGIT )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:56: HEXDIGIT
                    {
                    mHEXDIGIT(); 

                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:65: ( HEXDIGIT )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:66: HEXDIGIT
                    {
                    mHEXDIGIT(); 

                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:75: ( HEXDIGIT )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:63:76: HEXDIGIT
                    {
                    mHEXDIGIT(); 

                    }


                    }


                    }
                    break;

            }
            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end INTEGER

    // $ANTLR start IDENTIFIER
    public final void mIDENTIFIER() throws RecognitionException {
        try {
            int _type = IDENTIFIER;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:14: ( ( '*' | '+' | '-' | '/' | 'a' .. 'z' | '!' | '<' | '<=' | '=' | '!=' | '>' | '>=' )* )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:16: ( '*' | '+' | '-' | '/' | 'a' .. 'z' | '!' | '<' | '<=' | '=' | '!=' | '>' | '>=' )*
            {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:16: ( '*' | '+' | '-' | '/' | 'a' .. 'z' | '!' | '<' | '<=' | '=' | '!=' | '>' | '>=' )*
            loop7:
            do {
                int alt7=13;
                switch ( input.LA(1) ) {
                case '*':
                    {
                    alt7=1;
                    }
                    break;
                case '+':
                    {
                    alt7=2;
                    }
                    break;
                case '-':
                    {
                    alt7=3;
                    }
                    break;
                case '/':
                    {
                    alt7=4;
                    }
                    break;
                case 'a':
                case 'b':
                case 'c':
                case 'd':
                case 'e':
                case 'f':
                case 'g':
                case 'h':
                case 'i':
                case 'j':
                case 'k':
                case 'l':
                case 'm':
                case 'n':
                case 'o':
                case 'p':
                case 'q':
                case 'r':
                case 's':
                case 't':
                case 'u':
                case 'v':
                case 'w':
                case 'x':
                case 'y':
                case 'z':
                    {
                    alt7=5;
                    }
                    break;
                case '!':
                    {
                    int LA7_7 = input.LA(2);



                    alt7=6; 
                    }
                    break;
                case '<':
                    {
                    int LA7_8 = input.LA(2);



                    alt7=7; 
                    }
                    break;
                case '=':
                    {
                    alt7=9;
                    }
                    break;
                case '>':
                    {
                    int LA7_10 = input.LA(2);



                    alt7=11; 
                    }
                    break;

                }

                switch (alt7) {
            	case 1 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:17: '*'
            	    {
            	    match('*'); 

            	    }
            	    break;
            	case 2 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:21: '+'
            	    {
            	    match('+'); 

            	    }
            	    break;
            	case 3 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:25: '-'
            	    {
            	    match('-'); 

            	    }
            	    break;
            	case 4 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:29: '/'
            	    {
            	    match('/'); 

            	    }
            	    break;
            	case 5 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:33: 'a' .. 'z'
            	    {
            	    matchRange('a','z'); 

            	    }
            	    break;
            	case 6 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:42: '!'
            	    {
            	    match('!'); 

            	    }
            	    break;
            	case 7 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:46: '<'
            	    {
            	    match('<'); 

            	    }
            	    break;
            	case 8 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:50: '<='
            	    {
            	    match("<="); 


            	    }
            	    break;
            	case 9 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:55: '='
            	    {
            	    match('='); 

            	    }
            	    break;
            	case 10 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:59: '!='
            	    {
            	    match("!="); 


            	    }
            	    break;
            	case 11 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:64: '>'
            	    {
            	    match('>'); 

            	    }
            	    break;
            	case 12 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:64:68: '>='
            	    {
            	    match(">="); 


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end IDENTIFIER

    // $ANTLR start WHITESPACE
    public final void mWHITESPACE() throws RecognitionException {
        try {
            int _type = WHITESPACE;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:67:17: ( ( ' ' | '\\t' | '\\n' | '\\r' ) )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:67:19: ( ' ' | '\\t' | '\\n' | '\\r' )
            {
            if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
                input.consume();

            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recover(mse);    throw mse;
            }

             skip(); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WHITESPACE

    // $ANTLR start COMMENTS
    public final void mCOMMENTS() throws RecognitionException {
        try {
            int _type = COMMENTS;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:17: ( ( ( ( '/*' ) ( . )* ( '*/' ) ) | ( ( '//' ) ( . )* ( '\\n' ) ) ) )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:19: ( ( ( '/*' ) ( . )* ( '*/' ) ) | ( ( '//' ) ( . )* ( '\\n' ) ) )
            {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:19: ( ( ( '/*' ) ( . )* ( '*/' ) ) | ( ( '//' ) ( . )* ( '\\n' ) ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0=='/') ) {
                int LA10_1 = input.LA(2);

                if ( (LA10_1=='/') ) {
                    alt10=2;
                }
                else if ( (LA10_1=='*') ) {
                    alt10=1;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("72:19: ( ( ( '/*' ) ( . )* ( '*/' ) ) | ( ( '//' ) ( . )* ( '\\n' ) ) )", 10, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("72:19: ( ( ( '/*' ) ( . )* ( '*/' ) ) | ( ( '//' ) ( . )* ( '\\n' ) ) )", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:20: ( ( '/*' ) ( . )* ( '*/' ) )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:20: ( ( '/*' ) ( . )* ( '*/' ) )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:21: ( '/*' ) ( . )* ( '*/' )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:21: ( '/*' )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:22: '/*'
                    {
                    match("/*"); 


                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:27: ( . )*
                    loop8:
                    do {
                        int alt8=2;
                        int LA8_0 = input.LA(1);

                        if ( (LA8_0=='*') ) {
                            int LA8_1 = input.LA(2);

                            if ( (LA8_1=='/') ) {
                                alt8=2;
                            }
                            else if ( ((LA8_1>='\u0000' && LA8_1<='.')||(LA8_1>='0' && LA8_1<='\uFFFE')) ) {
                                alt8=1;
                            }


                        }
                        else if ( ((LA8_0>='\u0000' && LA8_0<=')')||(LA8_0>='+' && LA8_0<='\uFFFE')) ) {
                            alt8=1;
                        }


                        switch (alt8) {
                    	case 1 :
                    	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:27: .
                    	    {
                    	    matchAny(); 

                    	    }
                    	    break;

                    	default :
                    	    break loop8;
                        }
                    } while (true);

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:29: ( '*/' )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:30: '*/'
                    {
                    match("*/"); 


                    }


                    }


                    }
                    break;
                case 2 :
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:37: ( ( '//' ) ( . )* ( '\\n' ) )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:37: ( ( '//' ) ( . )* ( '\\n' ) )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:38: ( '//' ) ( . )* ( '\\n' )
                    {
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:38: ( '//' )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:39: '//'
                    {
                    match("//"); 


                    }

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:44: ( . )*
                    loop9:
                    do {
                        int alt9=2;
                        int LA9_0 = input.LA(1);

                        if ( (LA9_0=='\n') ) {
                            alt9=2;
                        }
                        else if ( ((LA9_0>='\u0000' && LA9_0<='\t')||(LA9_0>='\u000B' && LA9_0<='\uFFFE')) ) {
                            alt9=1;
                        }


                        switch (alt9) {
                    	case 1 :
                    	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:44: .
                    	    {
                    	    matchAny(); 

                    	    }
                    	    break;

                    	default :
                    	    break loop9;
                        }
                    } while (true);

                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:46: ( '\\n' )
                    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:72:47: '\\n'
                    {
                    match('\n'); 

                    }


                    }


                    }
                    break;

            }

             skip(); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMENTS

    // $ANTLR start STRING
    public final void mSTRING() throws RecognitionException {
        try {
            int _type = STRING;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:9: ( ( '\\'' ) (~ ( '\\'' ) )* ( '\\'' ) )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:11: ( '\\'' ) (~ ( '\\'' ) )* ( '\\'' )
            {
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:11: ( '\\'' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:12: '\\''
            {
            match('\''); 

            }

            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:17: (~ ( '\\'' ) )*
            loop11:
            do {
                int alt11=2;
                int LA11_0 = input.LA(1);

                if ( ((LA11_0>='\u0000' && LA11_0<='&')||(LA11_0>='(' && LA11_0<='\uFFFE')) ) {
                    alt11=1;
                }


                switch (alt11) {
            	case 1 :
            	    // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:17: ~ ( '\\'' )
            	    {
            	    if ( (input.LA(1)>='\u0000' && input.LA(1)<='&')||(input.LA(1)>='(' && input.LA(1)<='\uFFFE') ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop11;
                }
            } while (true);

            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:25: ( '\\'' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:76:26: '\\''
            {
            match('\''); 

            }


            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end STRING

    // $ANTLR start COMMA
    public final void mCOMMA() throws RecognitionException {
        try {
            int _type = COMMA;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:77:7: ( ',' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:77:9: ','
            {
            match(','); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end COMMA

    // $ANTLR start LPAREN
    public final void mLPAREN() throws RecognitionException {
        try {
            int _type = LPAREN;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:78:8: ( '(' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:78:10: '('
            {
            match('('); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end LPAREN

    // $ANTLR start RPAREN
    public final void mRPAREN() throws RecognitionException {
        try {
            int _type = RPAREN;
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:79:8: ( ')' )
            // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:79:10: ')'
            {
            match(')'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end RPAREN

    public void mTokens() throws RecognitionException {
        // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:8: ( IF | ELSE | THEN | END | INTEGER | IDENTIFIER | WHITESPACE | COMMENTS | STRING | COMMA | LPAREN | RPAREN )
        int alt12=12;
        alt12 = dfa12.predict(input);
        switch (alt12) {
            case 1 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:10: IF
                {
                mIF(); 

                }
                break;
            case 2 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:13: ELSE
                {
                mELSE(); 

                }
                break;
            case 3 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:18: THEN
                {
                mTHEN(); 

                }
                break;
            case 4 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:23: END
                {
                mEND(); 

                }
                break;
            case 5 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:27: INTEGER
                {
                mINTEGER(); 

                }
                break;
            case 6 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:35: IDENTIFIER
                {
                mIDENTIFIER(); 

                }
                break;
            case 7 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:46: WHITESPACE
                {
                mWHITESPACE(); 

                }
                break;
            case 8 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:57: COMMENTS
                {
                mCOMMENTS(); 

                }
                break;
            case 9 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:66: STRING
                {
                mSTRING(); 

                }
                break;
            case 10 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:73: COMMA
                {
                mCOMMA(); 

                }
                break;
            case 11 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:79: LPAREN
                {
                mLPAREN(); 

                }
                break;
            case 12 :
                // C:\\Users\\Derek\\workspace\\CS-214-Interpreters\\src\\edu\\calvin\\djs32\\cs214\\interpreters\\frontend\\Hobbes2008.g:1:86: RPAREN
                {
                mRPAREN(); 

                }
                break;

        }

    }


    protected DFA12 dfa12 = new DFA12(this);
    static final String DFA12_eotS =
        "\5\6\2\uffff\2\6\5\uffff\1\24\5\6\1\uffff\1\53\13\6\1\uffff\11\6"+
        "\1\uffff\1\65\1\66\7\6\2\uffff";
    static final String DFA12_eofS =
        "\67\uffff";
    static final String DFA12_minS =
        "\1\11\1\146\1\154\1\150\1\60\2\uffff\1\60\1\52\5\uffff\1\41\1\144"+
        "\1\163\1\145\2\0\1\uffff\1\41\1\145\1\156\11\0\1\uffff\11\0\1\uffff"+
        "\2\41\7\0\2\uffff";
    static final String DFA12_maxS =
        "\1\164\1\146\1\156\1\150\1\71\2\uffff\1\71\1\57\5\uffff\1\172\1"+
        "\144\1\163\1\145\2\ufffe\1\uffff\1\172\1\145\1\156\11\ufffe\1\uffff"+
        "\11\ufffe\1\uffff\2\172\7\ufffe\2\uffff";
    static final String DFA12_acceptS =
        "\5\uffff\1\5\1\6\2\uffff\1\7\1\11\1\12\1\13\1\14\6\uffff\1\1\14"+
        "\uffff\1\10\11\uffff\1\4\11\uffff\1\2\1\3";
    static final String DFA12_specialS =
        "\67\uffff}>";
    static final String[] DFA12_transitionS = {
            "\2\11\2\uffff\1\11\22\uffff\1\11\6\uffff\1\12\1\14\1\15\1\uffff"+
            "\1\4\1\13\1\7\1\uffff\1\10\12\5\53\uffff\1\2\3\uffff\1\1\12"+
            "\uffff\1\3",
            "\1\16",
            "\1\20\1\uffff\1\17",
            "\1\21",
            "\12\5",
            "",
            "",
            "\12\5",
            "\1\22\4\uffff\1\23",
            "",
            "",
            "",
            "",
            "",
            "\1\6\10\uffff\2\6\1\uffff\1\6\1\uffff\1\6\14\uffff\3\6\42\uffff"+
            "\32\6",
            "\1\25",
            "\1\26",
            "\1\27",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "",
            "\1\6\10\uffff\2\6\1\uffff\1\6\1\uffff\1\6\14\uffff\3\6\42\uffff"+
            "\32\6",
            "\1\54",
            "\1\55",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\56\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\57\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\60\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\61\1\40\42\41\32\34\uff84\41",
            "",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\62\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\63\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\64\1\52\42\41\32\46\uff84\41",
            "",
            "\1\6\10\uffff\2\6\1\uffff\1\6\1\uffff\1\6\14\uffff\3\6\42\uffff"+
            "\32\6",
            "\1\6\10\uffff\2\6\1\uffff\1\6\1\uffff\1\6\14\uffff\3\6\42\uffff"+
            "\32\6",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\35\10\41\1\30\1\31\1\41\1\32\1\41\1\33\14\41\1\36\1"+
            "\37\1\40\42\41\32\34\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "\41\41\1\47\10\41\1\42\1\43\1\41\1\44\1\41\1\45\14\41\1\50\1"+
            "\51\1\52\42\41\32\46\uff84\41",
            "",
            ""
    };

    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
    static final short[][] DFA12_transition;

    static {
        int numStates = DFA12_transitionS.length;
        DFA12_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
        }
    }

    class DFA12 extends DFA {

        public DFA12(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 12;
            this.eot = DFA12_eot;
            this.eof = DFA12_eof;
            this.min = DFA12_min;
            this.max = DFA12_max;
            this.accept = DFA12_accept;
            this.special = DFA12_special;
            this.transition = DFA12_transition;
        }
        public String getDescription() {
            return "1:1: Tokens : ( IF | ELSE | THEN | END | INTEGER | IDENTIFIER | WHITESPACE | COMMENTS | STRING | COMMA | LPAREN | RPAREN );";
        }
    }
 

}